home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung CD 2 (Tewi)(1994).iso / c / compiler / miracl / cat.c next >
C/C++ Source or Header  |  1992-05-25  |  713b  |  42 lines

  1. /*
  2.   reverse a sentence, eg `the cat sat on the mat'
  3.  
  4.   - reverse whole sentence to give `tam eht no tas tac eht'
  5.  
  6.   - reverse each word to give `mat the on sat cat the'
  7.  
  8.   all the reversing is in-place.
  9. */
  10.  
  11.  
  12. void main(), rev(char *l, char *r);
  13.  
  14. #include <stdio.h>
  15.  
  16. void main()
  17. {
  18.    char buf[100], *end, *x, *y;
  19.  
  20.    gets(buf);
  21.    for(end=buf; *end; end++) ;
  22.    rev(buf,end-1); /* reverse sentence */
  23.  
  24.    x=buf-1; y=buf; /* now swap each word within sentence */
  25.  
  26.    while(x++<end)
  27.       if(*x=='\0' || *x==' ')
  28.      {
  29.      rev(y,x-1);
  30.      y=x+1;
  31.      }
  32.  
  33.    printf("%s\n",buf);
  34. }
  35.  
  36. void rev(char *l,char *r)    /* reverse string */
  37. {
  38.    char t;
  39.  
  40.    while(l<r) { t=*l; *l++=*r; *r--=t; }
  41. }
  42.